home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / dev / amos / AMCAFExa.lha / AMCAF_Examples / NoGood(StartTheDance).AMOS / NoGood(StartTheDance).amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  1996-01-17  |  11.9 KB  |  421 lines

  1. ' ************************************* Commands used: 
  2. ' *                                   * Blitter Commands 
  3. ' *     No Good (Start The Dance)     * Shade Bob Commands 
  4. ' *   Music and Code by Chris Hodges  * Turbo Draw 
  5. ' *   Original Music by The Prodigy   * Protracker Commands
  6. ' *                                   * =Qsin
  7. ' ************************************* =Qcos
  8. '
  9. ' An example, how to synchronisize your demo with the music, using the 
  10. ' =Pt Signal function. 
  11. ' Requires 1 MB Chip mem!
  12. Close Editor : Close Workbench 
  13. Hide 
  14. If Exist("mod.no good")
  15.    Extension_8_0EA2 "mod.no good",-3
  16. Else 
  17.    Extension_8_0EA2 "Amcaf_Install:mod.no good",-3
  18. End If 
  19. Screen Open 0,320,8,2,0 : Screen Hide 
  20. Unpack 8 To 6 : Screen Hide 
  21. Screen 0 : Get Palette 6
  22. Screen 6
  23. For A=0 To 31 : Colour A,0 : Next 
  24. Screen Show 6
  25. Fade 3 To 0 : Wait 200
  26. Screen Open 7,320,256,4,0 : Screen Hide 
  27. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  28. For A=0 To 40*256-1 Step 2
  29.   Doke Logbase(1)+A,Rnd(65536)
  30. Next 
  31. Screen 6
  32. Fade 3 : Wait 48
  33. Screen Close 6
  34. Screen Open 4,320,256,2,0 : Screen Hide 
  35. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  36. Double Buffer 
  37. Autoback 0
  38. Screen Open 5,320,256,16,0 : Screen Hide 
  39. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  40. Unpack 9 To 6 : Screen Hide 
  41. Dim CO(7)
  42. For A=1 To 7
  43.   Read CO(A)
  44. Next 
  45.  Extension_8_10C6 64
  46.  Extension_8_10F2 125
  47.  Extension_8_108E 3
  48. Auto View Off 
  49. Bob Update Off 
  50. Sprite Update Off 
  51. MO=0 : PTVOL=64
  52. Screen 0
  53. Repeat 
  54.   Colour Back Colour(0)
  55.   Wait Vbl : View 
  56.   Timer=0
  57.   If Mouse Key>0 or Inkey$<>"" Then FADOUT=1
  58.   If FADOUT Then Dec PTVOL : Extension_8_10C6 PTVOL
  59.   P= Extension_8_10B6 
  60.   If P
  61.     If P<15 : A=P : Gosub NEWTEX : End If 
  62.     If P=16 : Gosub NEWCHLORVU : End If 
  63.     If P=17 : Gosub NEWSHADEBOBS : End If 
  64.     If P=18 : Gosub BLINKOFLIGHT : End If 
  65.     If P=19 : Gosub NEWDINGS : End If 
  66.     If P=20 : Gosub NEWGLENZLINES : End If 
  67.     If P=21 : Gosub NEWSHAPESFILLED : End If 
  68.     If P=22 : Gosub NEWSNAKE : End If 
  69.     If P=32 : Fade 3 : End If 
  70.   End If 
  71.   If MO Then On MO Gosub TEX,CHLORVU,SHADEBOBS,DINGS,DINGSFILLED,GLENZLINES,SHAPESFILLED,SNAKE
  72. Until PTVOL=0
  73.  Extension_8_10A8 
  74. Screen Hide 4 : Screen Hide 5 : Screen Hide 6 : Screen Hide 7
  75. Screen Close 0
  76. Screen Close 7
  77. Screen Close 6
  78. Screen Close 5
  79. Screen Close 4
  80. End 
  81. BLINKOFLIGHT:
  82.   S= Screen 
  83.   Screen 0 : Get Palette S : Screen S
  84.   For A=0 To 31 : Colour A,$FFF : Next 
  85.   Fade 2 To 0
  86. Return 
  87. NEWSNAKE:
  88.   Screen 5
  89.    Extension_8_121C 5,0
  90.    Extension_8_121C 5,1
  91.    Extension_8_121C 5,2
  92.    Extension_8_121C 5,3
  93.   DC=Rnd(4095) and $777
  94.   For A=0 To 15
  95.     Colour A, Extension_8_0EE8(DC,(10-A)*$111,0 To $FFF)
  96.   Next 
  97.   MO=8 : AD2=Rnd(15)+3 : AD1=Rnd(10)+10 : DC=1 : CR=1
  98.   Screen Show 5
  99.   Screen To Front 5
  100.   ACT=0
  101. Return 
  102. SNAKE:
  103.   X1= Extension_8_1114(ANG1, Extension_8_1106(ANG2,128))+160 : Y1= Extension_8_1106(ANG1, Extension_8_1114(ANG2,128))+128
  104.   X2= Extension_8_1114(ANG1, Extension_8_1114(ANG2,128))+160 : Y2= Extension_8_1106(ANG1, Extension_8_1106(ANG2,128))+128
  105.   If ACT
  106.     Ink DC : Polygon X1,Y1 To X3,Y3 To X4,Y4 To X2,Y2
  107.   End If 
  108.   X3=X1 : Y3=Y1 : X4=X2 : Y4=Y2
  109.   Add ANG1,AD1
  110.   Add ANG2,AD2
  111.   Add DC,CR
  112.   If DC=1 or DC=15 Then CR=-CR
  113.   ACT=1
  114. Return 
  115. NEWSHAPESFILLED:
  116.   Screen 4
  117.    Extension_8_121C 4,0
  118.   EFF=1+Rnd(4)
  119.   Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
  120.   Fade 2,0,Rnd(4095) and $777+$888
  121.   Screen Show 4
  122.   Screen To Front 4
  123.   Screen Swap 4
  124.   MO=7
  125. Return 
  126. SHAPESFILLED:
  127.   Screen 4
  128.    Extension_8_121C 4,0
  129.   Add W,16 : ZZ=24 : WW=W
  130.   If EFF=1
  131.     For A=0 To 4
  132.       SX= Extension_8_1114(WW,ZZ) : SY= Extension_8_1106(WW,ZZ)
  133.       Add ZZ,32 : Add WW,64
  134.        Extension_8_1016 160+SX,128+SY To 160-SY,128+SX,1,-1
  135.        Extension_8_1016 160-SY,128+SX To 160-SX,128-SY,1,-1
  136.        Extension_8_1016 160-SX,128-SY To 160+SY,128-SX,1,-1
  137.        Extension_8_1016 160+SY,128-SX To 160+SX,128+SY,1,-1
  138.     Next 
  139.   End If 
  140.   If EFF=2
  141.     For A=0 To 4
  142.       SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  143.       SX2= Extension_8_1114(WW+341,ZZ)+160 : SY2= Extension_8_1106(WW+341,ZZ)+128
  144.       SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1106(WW+682,ZZ)+128
  145.       Add ZZ,32 : Add WW,32
  146.        Extension_8_1016 SX1,SY1 To SX2,SY2,1,-1
  147.        Extension_8_1016 SX2,SY2 To SX3,SY3,1,-1
  148.        Extension_8_1016 SX3,SY3 To SX1,SY1,1,-1
  149.     Next 
  150.   End If 
  151.   If EFF=3
  152.     For A=0 To 4
  153.       SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  154.       SX2= Extension_8_1106(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  155.       SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1106(WW+682,ZZ)+128
  156.       Add ZZ,24 : Add WW,128
  157.        Extension_8_1016 SX1,SY1 To SX2,SY2,1,-1
  158.        Extension_8_1016 SX2,SY2 To SX3,SY3,1,-1
  159.        Extension_8_1016 SX3,SY3 To SX1,SY1,1,-1
  160.     Next 
  161.   End If 
  162.   If EFF=4
  163.     For A=0 To 4
  164.       SX1= Extension_8_1106(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  165.       SX2= Extension_8_1106(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  166.       SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1114(WW+682,ZZ)+128
  167.       Add ZZ,24 : Add WW,64
  168.        Extension_8_1016 SX1,SY1 To SX2,SY2,1,-1
  169.        Extension_8_1016 SX2,SY2 To SX3,SY3,1,-1
  170.        Extension_8_1016 SX3,SY3 To SX1,SY1,1,-1
  171.     Next 
  172.   End If 
  173.   If EFF=5
  174.     For A=0 To 4
  175.       SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  176.       SX2= Extension_8_1114(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  177.       SX3= Extension_8_1106(WW+682,ZZ)+160 : SY3= Extension_8_1114(WW+682,ZZ)+128
  178.       Add ZZ,24 : Add WW,48
  179.        Extension_8_1016 SX1,SY1 To SX2,SY2,7,-1
  180.        Extension_8_1016 SX2,SY2 To SX3,SY3,7,-1
  181.        Extension_8_1016 SX3,SY3 To SX1,SY1,7,-1
  182.     Next 
  183.   End If 
  184.    Extension_8_1042 4,0
  185.   Screen Swap 4
  186. Return 
  187. NEWGLENZLINES:
  188.   Screen 5
  189.   If MO<>6
  190.      Extension_8_121C 5,0
  191.      Extension_8_121C 5,1
  192.      Extension_8_121C 5,2
  193.      Extension_8_121C 5,3
  194.   End If 
  195.   BP=0
  196.   EFF=1+Rnd(4)
  197.   Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
  198.   If EFF=1
  199.     Fade 2,0,$444,$444,$888,$444,$888,$888
  200.   End If 
  201.   If EFF=2
  202.     Fade 2,0,$884,$884,$CC8,$884,$CC8,$CC8,$FFF
  203.   End If 
  204.   If EFF=3
  205.     Fade 2,0,$844,$844,$C88,$844,$C88,$C88,$FFF
  206.   End If 
  207.   If EFF=4
  208.     Fade 2,0,$484,$484,$8C8,$484,$8C8,$8C8,$FFF
  209.   End If 
  210.   If EFF=5
  211.     Fade 2,0,$448,$448,$88C,$448,$88C,$88C,$FFF
  212.   End If 
  213.   Screen Show 5
  214.   Screen To Front 5
  215.   MO=6
  216. Return 
  217. GLENZLINES:
  218.   Screen 5
  219.   Add BP,1,0 To 2
  220.    Extension_8_121C 5,BP
  221.   If EFF=1
  222.     Add W,16
  223.     Add Z,2 : If Z>31 : Z=0 : Add W,-64 : End If 
  224.     ZZ=Z+32 : WW=W
  225.     For A=0 To 5
  226.       SX= Extension_8_1114(WW,ZZ) : SY= Extension_8_1106(WW,ZZ)
  227.       Add ZZ,32 : Add WW,64
  228.        Extension_8_1016 160+SX,128+SY To 160-SY,128+SX,7, Extension_8_04F8(BP)
  229.        Extension_8_1016 160-SY,128+SX To 160-SX,128-SY,7, Extension_8_04F8(BP)
  230.        Extension_8_1016 160-SX,128-SY To 160+SY,128-SX,7, Extension_8_04F8(BP)
  231.        Extension_8_1016 160+SY,128-SX To 160+SX,128+SY,7, Extension_8_04F8(BP)
  232.     Next 
  233.     Return 
  234.   End If 
  235.   If EFF=2
  236.     Add W,16
  237.     Add Z,2 : If Z>31 : Z=0 : Add W,-32 : End If 
  238.     ZZ=Z+32 : WW=W
  239.     For A=0 To 5
  240.       SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  241.       SX2= Extension_8_1114(WW+341,ZZ)+160 : SY2= Extension_8_1106(WW+341,ZZ)+128
  242.       SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1106(WW+682,ZZ)+128
  243.       Add ZZ,32 : Add WW,32
  244.        Extension_8_1016 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
  245.        Extension_8_1016 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
  246.        Extension_8_1016 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
  247.     Next 
  248.     Return 
  249.   End If 
  250.   If EFF>2
  251.     Add W,12 : ZZ=24 : WW=W
  252.   End If 
  253.   If EFF=3
  254.     For A=0 To 5
  255.       SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  256.       SX2= Extension_8_1106(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  257.       SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1106(WW+682,ZZ)+128
  258.       Add ZZ,24 : Add WW,128
  259.        Extension_8_1016 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
  260.        Extension_8_1016 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
  261.        Extension_8_1016 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
  262.     Next 
  263.     Return 
  264.   End If 
  265.   If EFF=4
  266.     For A=0 To 5
  267.       SX1= Extension_8_1106(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  268.       SX2= Extension_8_1106(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  269.       SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1114(WW+682,ZZ)+128
  270.       Add ZZ,24 : Add WW,64
  271.        Extension_8_1016 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
  272.        Extension_8_1016 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
  273.        Extension_8_1016 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
  274.     Next 
  275.     Return 
  276.   End If 
  277.   If EFF=5
  278.     For A=0 To 5
  279.       SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
  280.       SX2= Extension_8_1114(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
  281.       SX3= Extension_8_1106(WW+682,ZZ)+160 : SY3= Extension_8_1114(WW+682,ZZ)+128
  282.       Add ZZ,24 : Add WW,48
  283.        Extension_8_1016 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
  284.        Extension_8_1016 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
  285.        Extension_8_1016 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
  286.     Next 
  287.   End If 
  288. Return 
  289. NEWDINGS:
  290.   Screen 4
  291.   Palette 0,$FF0
  292.   Screen Show 4
  293.   Screen To Front 4
  294.   MO=4+Rnd(1)
  295.   AD1=Rnd(15)+10
  296.   AD2=Rnd(15)+10
  297.   IAD1=AD1*(Rnd(3)+1)
  298.   IAD2=AD2*(Rnd(3)+1)
  299. Return 
  300. DINGSFILLED:
  301.   Screen 4
  302.    Extension_8_121C 4,0
  303.   DA1=ANG1
  304.   DA2=ANG2
  305.   For A=0 To 4
  306.     X1= Extension_8_1114(DA1,159)+160
  307.     Y1= Extension_8_1106(DA2,127)+127
  308.     If A>0
  309.        Extension_8_1016 X1,Y1 To X2,Y2,1,-1
  310.     End If 
  311.     X2=X1 : Y2=Y1
  312.     X3= Extension_8_1114(DA1,100)+160
  313.     Y3= Extension_8_1106(DA2,67)+127
  314.     If A>0
  315.        Extension_8_1016 X3,Y3 To X4,Y4,1,-1
  316.     End If 
  317.     If A=0 or A=4
  318.        Extension_8_1016 X1,Y1 To X3,Y3,1,-1
  319.     End If 
  320.     X4=X3 : Y4=Y3
  321.     Add DA1,IAD1*2
  322.     Add DA2,IAD2*2
  323.   Next 
  324.    Extension_8_1042 4,0
  325.   Add ANG1,AD1
  326.   Add ANG2,AD2
  327.   Screen Swap 4
  328. Return 
  329. DINGS:
  330.   Screen 4
  331.    Extension_8_121C 4,0
  332.   DA1=ANG1
  333.   DA2=ANG2
  334.   For A=0 To 7
  335.     X1= Extension_8_1114(DA1,159)+160
  336.     Y1= Extension_8_1106(DA2,127)+127
  337.     If A>0
  338.        Extension_8_1016 X1,Y1 To X2,Y2,1,1
  339.     End If 
  340.     X2=X1 : Y2=Y1
  341.     X3= Extension_8_1114(DA1,100)+160
  342.     Y3= Extension_8_1106(DA2,67)+127
  343.     If A>0
  344.        Extension_8_1016 X3,Y3 To X4,Y4,1,1
  345.     End If 
  346.      Extension_8_1016 X1,Y1 To X3,Y3,1,1
  347.     X4=X3 : Y4=Y3
  348.     Add DA1,IAD1
  349.     Add DA2,IAD2
  350.   Next 
  351.   Add ANG1,AD1
  352.   Add ANG2,AD2
  353.   Screen Swap 4
  354. Return 
  355. NEWSHADEBOBS:
  356.   Screen 5
  357.    Extension_8_121C 5,0
  358.    Extension_8_121C 5,1
  359.    Extension_8_121C 5,2
  360.    Extension_8_121C 5,3
  361.   DC=Rnd(4095) and $777
  362.   For A=0 To 15
  363.     Colour A, Extension_8_0EE8(DC,(10-A)*$111,0 To $FFF)
  364.   Next 
  365.   Screen Show 5
  366.   Screen To Front 5
  367.    Extension_8_0F6C 4
  368.   MO=3
  369. Return 
  370. SHADEBOBS:
  371.   X1= Extension_8_1114(ANG1, Extension_8_1106(ANG2,159))+160
  372.   Y1= Extension_8_1106(ANG2, Extension_8_1106(ANG3,127))+128
  373.   X2= Extension_8_1114(ANG3, Extension_8_1114(ANG1,159))+160
  374.   Y2= Extension_8_1106(ANG1, Extension_8_1114(ANG2+ANG3,127))+128
  375.   X3= Extension_8_1106(ANG2, Extension_8_1106(ANG3+ANG1,159))+160
  376.   Y3= Extension_8_1114(ANG3, Extension_8_1114(ANG1,127))+128
  377.   X4= Extension_8_1114(ANG1, Extension_8_1114(ANG2,159))+160
  378.   Y4= Extension_8_1106(ANG3, Extension_8_1106(ANG3+ANG2,127))+128
  379.   Add ANG1,10
  380.   Add ANG2,9
  381.   Add ANG3,7
  382.    Extension_8_0F84 5,X1,Y1,11
  383.    Extension_8_0F84 5,X2,Y2,11
  384.    Extension_8_0F84 5,X3,Y3,11
  385.    Extension_8_0F84 5,X4,Y4,11
  386. Return 
  387. NEWTEX:
  388.   Screen 7
  389.   Palette $FFF,$444,$CCC,0
  390.    Extension_8_121C 7,0
  391.   ST=Leek(Start(1)-6+A*8)
  392.   XH=Deek(ST+6)
  393.   YH=Deek(ST+8)
  394.   Paste Bob 160-XH,128-YH,A
  395.   Fade 3,$FFF,$FFF,$CCC,$CCC
  396.   Screen To Front 7
  397.   Screen Show 7
  398.   MO=1
  399. Return 
  400. TEX:
  401.    Extension_8_1042 7,1
  402. Return 
  403. NEWCHLORVU:
  404.   Screen 6 : For A=0 To 31 : Colour A,0 : Next 
  405.   Screen Show 6 : Screen To Front 6
  406.   MO=2
  407. Return 
  408. CHLORVU:
  409.   Screen 6
  410.   For A=0 To 3
  411.     V= Extension_8_10E6(A)
  412.     If V
  413.       DC=CO(Rnd(6)+1)
  414.       For C=1 To 7
  415.         Colour 8-C+A*8, Extension_8_0EE8(DC,C*-$222,0 To $FFF)
  416.       Next 
  417.       Fade 2
  418.     End If 
  419.   Next 
  420. Return 
  421. Data $F00,$F0,$F44,$FF0,$FF,$F0F,$FFF